#pragma once
#include <cstdint>

class Size {
public:
    explicit Size(uint64_t value = 0) : value_(value) {}
    ~Size(){}

    Size(const Size & ) = default;
    Size & operator = (const Size &) = default;

    uint64_t value() const{
        return value_;
    }
    uint64_t value(uint64_t sz){
        uint64_t old = value_;
        value_ = sz;
        return old;
    }
    void inc(uint64_t step = 1){
        value_ += step;
    }
    void dec(uint64_t step = 1){
        value_ -= step;
    }
private:
    uint64_t value_;
};
